package br.com.plurianual.util.converter;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

import org.apache.commons.lang3.StringUtils;

import br.com.plurianual.exception.DataAccessLayerException;
import br.com.plurianual.model.entity.MacroObjetivo;
import br.com.plurianual.service.MacroObjetivoService;

@FacesConverter(value="macroObjetivoConverter")
public class MacroObjetivoConverter  implements Converter {

	@Override
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		if(!StringUtils.isNumeric(value)){
			return new MacroObjetivo();
			
		}
		Integer primaryKey = Integer.parseInt(value);
		
		MacroObjetivoService service = new MacroObjetivoService();
		MacroObjetivo macroObjetivo = null;
		try {
			macroObjetivo = service.getMacroObjetivoDAO().findById(primaryKey);
		} catch (DataAccessLayerException e) {
			e.printStackTrace();
		}
		
		return macroObjetivo;
	}
	
	@Override
	public String getAsString(FacesContext context, UIComponent component, Object value) {
		MacroObjetivo macroObjetivo = (MacroObjetivo) value;
		if(macroObjetivo ==  null || macroObjetivo.getId() ==  null){
			return null;
		}
		return macroObjetivo.getId().toString();
	}
}


